#day_002
# 字典 dict

# 字典 dict,使用 {} 表示
# 字典是由键(key)值(value)对组成的,  key:value
# 一个键值对是一组数据,多个键值对之间使用 逗号隔开
# 在一个字典中,字典的键 是不能重复的
#  字典中的键 主要使用 字符串类型,可以是数字
#   字典不存在下标
#   字典的增加和修改: 字典['键'] = 值 修改对应键的值
#   字典的删除pop: 字典.pop('键')
#   字典的遍历 ,有3种三种情况,遍历只能用for


# 1\类实例化的方式
dict1 = dict ()
print(type(dict1),dict1)
# 2\直接用{}定义
# 定义空字典和非空字典
dict2 = {}
dict3 ={"name":"小明","age":18,"height":1.78}
print(dict2)
print(dict3)
# <class 'dict'> {}
# {}
# {'name': '小明', 'age': 18, 'height': 1.78}

# 字典的增加和修改 字典['键'] = 值
# 1,键存在 ,修改
# 2,键不存在,添加
dict3["name"] = '小五'
dict3['weight'] = '120'
print(dict3)
# {'name': '小五', 'age': 18, 'height': 1.78, 'weight': '120'}

# 删除 字典.pop('键')
dict3.pop('weight')
print(dict3)
# {'name': '小五', 'age': 18, 'height': 1.78}

# 查询 字典['键']    键不存在就报错
# 查询 字典.get(键)  键不存在,返回 None
print(dict3['name'])
print(dict3.get('name'))
print(dict3.get('weight'))

# 字典存在 键(key),值(value) ,遍历分为三种情况
# 遍历字典的键
# 方式一
# for 变量 in 字典:
#     print(变量)
# 方式二
# for 变量 in 字典.key():           #字典.keys() 可以获取字典所有的键
#   print(变量)

# 遍历字典的值(使用的较多)
# for 变量 in 字典.values():        #字典.values() 可以获取字典所有的值
#   print(变量)

# 遍历字典的键和值
# 变量1 就是键,变量2 就是值
#  for 变量1,变量2 in 字典.items():       #字典.items() 获取的是字典的键值对
#   print(变量1,变量2)

print('*'*30)
dict4 = {"name":"小明","age":18,"height":1.8}
for k in dict4:
    print(k)
print('*'*30)
for k in dict4.keys():
    print(k)
print('*' * 30)
for v in dict4.values():
    print(v)
print('*' * 30)
for k,v in dict4.items():
    print(k,v)

# in是python中的关键字,可以用来判断容器中是否包含这个数据
# 如果包含返回True,如果不包含返回False
# 对于字典来说,判断的就是字典中是否包含这个键
# not in 就相反,没有则返回True
# 数据 in 容器
a_001= 'a' in 'abc'
print(a_001)